The present invention relates to search engines, and more specifically, to a search engine capable of efficiently searching a stream of information content for information matching search queries from a plurality of users.
A search engine is a program that helps users find information in an information network. Users submit search queries comprising words or phrases indicating what they are searching for, and the search engine replies with a list of Web pages it predicts are relevant to that query. A page considered by a search engine for inclusion in this list can be termed a “target page”. The list of Web pages returned by a search engine is ranked by relevancy. Typically, relevancy is determined mostly by the content of the target pages. For example, if the user searches for the phrase “chocolate cake”, a typical search engine may rank pages containing the phrase “chocolate cake” before those which merely contain the words “chocolate” and “cake” separately, and those pages will in turn be ranked higher than pages that contain one of the two words but not the other.
Today many sites on the Internet offer large volumes of time sensitive content, such as financial news, business news, real-time weather reports, and other types of streaming media content. However, current search systems may operate very inefficiently when handling a large volume of user requests.
One problem with current search systems occurs when one or more users want to perform the same or similar searches periodically over time to find the most recent information that becomes available. This is referred to as a “persistent query.” Typical search systems fail to efficiently handle persistent queries from a large number of users.